package com.itcast.common.utils;

/**
 * 条形码生成工具类
 *
 * @author itcast
 * @create 2024-08-30 19:25
 */
public class BarCodeUtils {
    /**
     * 基础属性：二维码宽度，单位像素
     */
    private static final Integer DEFAULT_WIDTH = 600;
    /**
     * 基础属性：二维码高度，单位像素
     */
    private static final Integer DEFAULT_HEIGHT = 100;

    private BarCodeUtils() {
    }

    /**
     * 根据指定内容生成一个字符串，使用默认的宽度和高度
     *
     * @param contents 输入的内容，用于生成字符串
     * @return 生成的字符串
     * <p>
     * 此重载方法通过调用另一个带有默认宽度和高度参数的generate方法来实现功能
     * 它提供了一个更简洁的接口，当用户只需要指定内容而不关心尺寸时使用
     */
    public static String generate(String contents) {
        return generate(contents, DEFAULT_WIDTH, DEFAULT_HEIGHT);
    }

    /**
     * 生成条形码方法
     *
     * @param contents 条形码内容
     * @param width    条形码宽度
     * @param height   条形码高度
     * @return 返回Base64编码的PNG图片字符串
     * <p>
     * 此方法通过MultiFormatWriter生成BitMatrix，再通过MatrixToImageWriter将BitMatrix写入输出流，
     * 最终将输出流中的图片数据Base64编码后以字符串形式返回，用于生成和处理条形码图像。
     */
    public static String generate(String contents, Integer width, Integer height) {
       return null;
    }
}
